#include <stdlib.h>
#include <stdio.h>

/*
C编译程序都提供了内存分配函数，最主要的是malloc和calloc，
它们是标准C语言函数库的一部分，功能都是为要写的数据在内存中分配一个安全区。
一旦找到一个大小合适的内存空间，就分配给它们，
并将这部分内存的地址作为一个指针返回。

malloc和calloc的主要区别是：
    calloc清除所分配的内存中的所有字节，即将所有字节置零；
    malloc仅分配一块内存，但所有字节的内容仍然是被分配时所含的随机值。


在设计C程序时，对指针的初始化有两种方法：
    使用已有变量的地址
    或者
    为它分配动态存储空间。

好的设计方法是尽可能地早点为指针赋值，以免遗忘造成使用未初始化的指针。
*/
int main()
{
    char *p;
    p = (char *)malloc(200);
    if (p == NULL)
    {
        printf("内存分配错误！\n");
        exit(1);
    }
    printf("please input some char:");
    gets(p);
    printf(p);
    printf("\n");
    free(p);
    system("pause");
    return 0;
}